import tkinter as tk
from tkinter import ttk
import tkinter.colorchooser


def open_color_chooser():
    """打开颜色选择器并处理选择结果"""
    # 使用askcolor()简化接口，返回值为 (RGB值, 十六进制颜色值)
    color_result = tkinter.colorchooser.askcolor(
        title="选择颜色",  # 对话框标题
        initialcolor="#FFFFFF"  # 初始颜色（白色）
    )

    # 处理选择结果（用户点击"确定"返回有效颜色，点击"取消"返回(None, None)）
    if color_result[1] is not None:
        print(f"选择的颜色：RGB={color_result[0]}, 十六进制={color_result[1]}")
        # 示例：将选中的颜色应用到Treeview的选中项
        selected_item = tree.selection()
        if selected_item:
            tree.item(selected_item, tags=("colored",))
            tree.tag_configure("colored", foreground=color_result[1])


# 创建主窗口
root = tk.Tk()
root.title("Treeview 与颜色选择器示例")
root.geometry("400x300")

# 创建颜色选择按钮
color_btn = ttk.Button(root, text="选择颜色", command=open_color_chooser)
color_btn.pack(pady=5)

# 创建 Treeview 控件
tree = ttk.Treeview(root)
tree.pack(expand=0, fill="both", padx=5, pady=5)

# 插入数据到 Treeview 中
child_node1 = tree.insert("", "end", text="子节点 1", iid="child1")
child_node2 = tree.insert("", "end", text="子节点 2", iid="child2")
tree.insert(child_node1, "end", text="孙节点 1.1")
tree.insert(child_node2, "end", text="孙节点 2.1")

# 启动主循环
root.mainloop()
